

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<script type="text/javascript" src="helpman_topicinit.js"></script>

<title>Primary Key [Enterprise Architect User Guide]</title>

<meta name="keywords" content="Enterprise Architect, Sparx Systems, UML, Data Modeling,Data Modeling Primary Key, Create,Primary Key,Primary Key Name Template, Define,Primary Key Create,Primary Key Description,Primary Key Simple,Primary Key Complex,Create,Create Primary Key,Create Primary Key Name Template,What Is,What Is A Primary Key?,Name Template,Name Template Primary Key">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />

<link type="text/css" href="default.css" rel="stylesheet" />
<style type="text/css">
  A, A:Visited
  {
    color: #00F;
  }

  A:Active, A:Hover
  {
    color: #F00;
  }

  OL
  {
    margin: 5px 0 5px 48px;
  }

  UL
  {
    margin-bottom: 3px;
    margin-top: 0;
  }

  #nsr
  {
    background-color: #D4DFFF;
  }

  #nsr A
  {
    text-decoration: none;
  }

  #mainbody
  {
    padding: 8px;
  }

  .p_BodyText
  {
    padding: 5px 0;
  }
</style>



<style type="text/css" media="screen">
  BODY
  {
    background-color: #FFFFFF;
  }

  #nsr
  {
    padding: 6px 6px 0 6px;
    border-bottom: none;
    vertical-align: top;
    z-index: 2;
    visibility: visible;
    left: 0;
    top: 0;
    position: absolute;
  }

  #mainbody
  {
    left: 0;
    top: 0;
    margin: 0;
    position: absolute;
    padding: 10px;
    overflow: auto;
    height: 100%;
    z-index: 1;
    background-repeat: no-repeat;
    background-position: bottom right;
    background-attachment: fixed;
  }
</style>

<style type="text/css" media="print">
  #nsr
  {
    visibility: none;
  }

  #mainbody
  {
    overflow: visible;
  }
</style>
<script type="text/javascript" language="JavaScript" src="nonscroll.js"></script>

</head>
<body scroll="no">

<div id="page">



        <div id="content">
          <div id="content-inner">
          



  
          <div id="nsr">
            <table border="0" cellspacing="0" cellpadding="4" width="100%">
              <tr valign="top">
                <td align="left">
  


                  <p class="p_Heading1"><span class="f_Heading1">Primary Key</span></p>



  
                </td>
                <td align="right">
                  <a href="introduction.htm" onmouseover="document.images.main.src='button_main_h.gif'" onmouseout="document.images.main.src='button_main.gif'">
                    <img name="main" src="button_main.gif" border=0 alt="Return to Introduction">
                  </a>&nbsp;
    
                  <a href="create_oracle_packages.htm" onmouseover="document.images.prev.src='button_prev_h.gif'" onmouseout="document.images.prev.src='button_prev.gif'">
                    <img name=prev src="button_prev.gif" border=0 alt="Previous page" />
                  </a>&nbsp;
    
    
    
                  <a href="modifyingprimarykeys.htm" onmouseover="document.images.next.src='button_next_h.gif'" onmouseout="document.images.next.src='button_next.gif'">
                    <img name=next src="button_next.gif" border=0 alt="Next page" />
                  </a>
    
    
                </td>
              </tr>
            </table>
          </div>
          <div id="mainbody">
  


                <p class="p_TextIndentedL1"><img src="primary_key.png" width="183" height="100" border="0" alt="primary_key"></p>
<p class="p_SubHeadingL1"><span class="f_SubHeadingL1">What is a Primary Key?</span></p>
<p class="p_BodyText"><span class="f_BodyText">Keys are used to access tables, and come in two varieties: </span><span class="f_BodyText">Primary Keys</span><span class="f_BodyText"> and </span><span class="f_BodyText">Foreign Keys</span><span class="f_BodyText">. A Primary Key uniquely identifies a record in a table, while a </span><span class="f_BodyText"><a href="foreignkeys.htm">Foreign Key</a></span><span class="f_BodyText"> accesses data in some other related table via its Primary Key.</span></p>
<p class="p_SubHeadingL1"><span class="f_SubHeadingL1">Define a Simple Primary Key</span></p>
<p class="p_BodyText"><span class="f_BodyText">If a Primary Key consists of a single column, it is very easy to define.</span></p>
<ol style="text-indent: 0px; margin-left: 48px; list-style-position: outside;">
<li value=1><span class="f_NumberedList">Right-click on the table in a diagram to display the context menu. Select the </span><span class="f_MenuKeyField">Attributes</span><span class="f_NumberedList"> menu option.</span></li>
<li value=2><span class="f_NumberedList">In the</span><span class="f_UIControl"> Attributes</span><span class="f_NumberedList"> dialog, select the column that makes up the Primary Key.</span></li>
<li value=3><span class="f_NumberedList">Select the </span><span class="f_MenuKeyField">Primary Key</span><span class="f_NumberedList"> checkbox and click on the </span><span class="f_MenuKeyField">Save</span><span class="f_NumberedList"> button.</span></li>
</ol>
<p class="p_BodyText"><span class="f_BodyText">A stereotyped operation is automatically created. It is this operation that defines the Primary Key for the table. To remove a Primary Key, simply delete this operation.</span></p>
<p class="p_SubHeadingL1"><span class="f_SubHeadingL1">Define a Complex Primary Key</span></p>
<p class="p_BodyText"><span class="f_BodyText">Often, a Primary Key consists of more than one column. For example, a column </span><span class="f_BodyText" style="font-style: italic;">LastName</span><span class="f_BodyText"> might not be unique within a table, so a Primary Key is created from the </span><span class="f_BodyText" style="font-style: italic;">LastName</span><span class="f_BodyText">, </span><span class="f_BodyText" style="font-style: italic;">FirstName</span><span class="f_BodyText"> and </span><span class="f_BodyText" style="font-style: italic;">DateOfBirth</span><span class="f_BodyText"> columns. Perform the following steps to create a complex Primary Key:</span></p>
<ol style="text-indent: 0px; margin-left: 48px; list-style-position: outside;">
<li value=1><span class="f_NumberedList">Follow the steps above to create a Simple Primary Key. It doesn't matter which column you choose.</span></li>
<li value=2><span class="f_NumberedList">Right-click on the table in a diagram to open the context menu. Select the </span><span class="f_MenuKeyField">Operations</span><span class="f_NumberedList"> menu option.</span></li>
<li value=3><span class="f_NumberedList">Select the Primary Key operation (its name begins with</span><span class="f_NumberedList" style="font-weight: bold;"> PK_</span><span class="f_NumberedList">) and then click on the </span><span class="f_UIControl">Column</span><span class="f_NumberedList"> tab.</span></li>
<li value=4><span class="f_NumberedList">To add a column to the Primary Key, click on the </span><span class="f_MenuKeyField">New</span><span class="f_NumberedList"> button, select a column from the </span><span class="f_UIControl">Column Name</span><span class="f_NumberedList"> list box, and then click on the</span><span class="f_MenuKeyField"> Save</span><span class="f_NumberedList"> button.</span></li>
<li value=5><span class="f_NumberedList">Click on the </span><span class="f_MenuKeyField">Hand</span><span class="f_NumberedList"> buttons (up and down arrow) to change the order of columns in the Primary Key, if necessary.</span></li>
</ol>
<p class="p_BodyText"><span class="f_BodyText">(See also the </span><span class="f_BodyText" style="font-style: italic;"><a href="modifyingprimarykeys.htm">SQL Server Non-Clustered Primary Keys</a></span><span class="f_BodyText"> topic).</span></p>
<p class="p_SubHeadingL1"><span class="f_SubHeadingL1">Define a Primary Key Name Template</span></p>
<p class="p_BodyText"><span class="f_BodyText">To define the name template for a Primary Key, follow the steps below:</span></p>
<ol style="text-indent: 0px; margin-left: 48px; list-style-position: outside;">
<li value=1><span class="f_NumberedList">Select the </span><span class="f_MenuKeyField">Tools | Options | Source Code Engineering | Code Editors</span><span class="f_NumberedList"> menu option. The </span><span class="f_UIControl">DDL</span><span class="f_NumberedList"> page of the </span><span class="f_UIControl">Options</span><span class="f_NumberedList"> dialog displays.</span><br>
<span class="f_NumberedList">&nbsp;</span><br>
<img src="codeeditoroption.png" width="654" height="430" border="0" alt="CodeEditorOption"><br>
<span class="f_NumberedList">&nbsp;</span></li>
<li value=2><span class="f_NumberedList">Click on the </span><span class="f_MenuKeyField">DDL Name Template</span><span class="f_NumberedList"> button. The </span><span class="f_UIControl">DDL Name Template</span><span class="f_NumberedList"> dialog displays, showing the default name templates.</span><br>
<span class="f_NumberedList">&nbsp;</span><br>
<img src="nametemplate.png" width="453" height="194" border="0" alt="NameTemplate"><br>
<span class="f_NumberedList">&nbsp;</span></li>
<li value=3><span class="f_NumberedList">Edit or replace the template in the </span><span class="f_MenuKeyField">Primary Key Name Template</span><span class="f_NumberedList"> field.</span></li>
</ol>
<div style="text-align: left; text-indent: -21px; padding: 0px 0px 0px 0px; margin: 5px 0px 0px 48px;"><table cellspacing="0" cellpadding="2" border="0" style="border: none; border-spacing:0px;">
<tr style="text-align:left;vertical-align:bottom;">
<td valign="bottom" width="952" bgcolor="#efeff7" style="width:952px; background-color:#efeff7;"><p class="p_TiporNote" style="border-top: none; border-right: none; border-left: none;"><span class="f_TiporNote">Note:</span></p>
</td>
</tr>
<tr style="text-align:left;">
<td width="952" bgcolor="#f7f7ff" style="width:952px; background-color:#f7f7ff;"><p class="p_TiporNoteText"><span class="f_TiporNoteText">If you want to display the Primary Key description as </span><span class="f_TiporNoteText" style="font-style: italic;">PK_tablename_columnname</span><span class="f_TiporNoteText"> then change the </span><span class="f_MenuKeyField">Primary Key Name Template</span><span class="f_TiporNoteText"> field to </span><span class="f_TiporNoteText" style="font-style: italic;">PK_%tablename%_%columnname%.</span></p>
</td>
</tr>
</table>
</div>
<ol style="text-indent: 0px; margin-left: 48px; list-style-position: outside;">
<li value=4><span class="f_NumberedList">Click on the </span><span class="f_MenuKeyField">Save</span><span class="f_NumberedList"> button.</span></li>
</ol>




            </div>
          </div>
        </div>



</div>


</body>
</html>
